The present invention relates in general to reducing the Mean Time To Repair (MTTR) in programmable systems having both hardware and software portions. The present invention relates in particular to programmable systems where the software is used under a license agreement and requires license information before operating in a basic mode and/or operating optional features.
Programmable systems are becoming larger, more complicated and more versatile, in particular with regard to internal telephone systems for companies and organizations. These internal telephone systems are also known as Private Branch Exchanges (PBX) and are performing more functions, such as voice mail, call forwarding, email, call tracking and billing. This has become possible through the use hardware that can be controlled by software. The hardware performs relatively small, but numerous, and almost generic individual operations under the control of the software. As more features are added, the software in such PBX""s is becoming larger, more complicated and more valuable.
Very often a PBX system will be offered for sale with a plurality of different options or additional features for different prices. These different options or additional features are usually enabled either by adding additional software or enabling previously disabled portions of the core software. The costs of generating and testing software can be high for complicated features resulting in high sale prices. The high sale prices in combination with the desirability of additional features, and the fact that software is very easily copied and transferred, results in unauthorized software use and the loss of profits.
One way in which unauthorized software use is controlled is through the use of license information. The software requires that license information be provided before the software can operate. Very often before the software can begin, or additional features can be used, the license information needs to be provided from a source external to the software. The software can ask the operator for the license information each time the license information is required. The license information can also be stored in the hardware that operates the software.
Because the security provided by the license information is desired to be very high, the license information is usually very lengthy and complicated. Having the operator enter the license information each time the license information is required, is very annoying on the part of the operator. Therefore storing the license information in the hardware operating the software is more desirable. The license information is entered by the operator when the PBX system is installed, and additional license information is added whenever additional options or features are added to the system.
A disadvantage of storing license information in the hardware operating the software, is that when the hardware needs to be repaired or replaced, the license information in the hardware is lost. Since the license information is usually only added to the system at the installation of the system or options, paper records of the license information is often lost or unavailable to the operator when a repair or replacement of the hardware occurs. Repairs to hardware are often requiring more time to obtain the license information, especially license information for any upgrades of optional features, than the time to perform the actual physical repair.
It is a primary object of the present invention to reduce the repair time in a programmable system requiring license information, especially a programmable telephone system.
The present invention accomplishes this object by providing a system specific memory for storing the license information. This system specific memory unit is arranged in a stable portion of the programmable system that is separate from a majority of other replaceable system hardware, especially the hardware that operates or runs the system software. The system specific memory is designed to have high reliability, usually a higher reliability than many other of the components of the programmable system. Also the entire stable portion of the programmable system that includes the system specific memory is designed for high reliability. In this way, the portion including the system specific memory will not need to be often replaced and when other hardware of the system needs to be replaced, the license information does not need to be re-entered.
The present invention is economically practical because many types of memory have a high reliability, and a relatively low cost. While it is often desirable from a manufacturing viewpoint to combine as many components as possible into one unit or module, the present invention has found it advantageous to separate a portion of the hardware storing the license information from the remaining hardware, and to have the memory storing the license information to be of high reliability and to be stable.
When a programmable system, such as a PBX, is designed, a system board is provided for operating or running the software. In order to operate the software, the system board contains a main memory which contains both the actual software code and other information concerning the system and/or the specific system board, such as the serial number of the system board, the manufacturing date and information concerning revisions to the system board. While it would be convenient to include license information in this memory, the present invention specifically arranges license information in a separate memory on a unit or module which is separately replaceable from the system board and has a higher reliability than the system board. The system board is generally more complicated than a memory unit because it has more active components and many of these components are inherently less reliable than a memory component. It is therefore possible to provide a separate memory component for the license information which is more reliable than the system board and where the system board is separately replaceable, while still providing a system that is economically practical.
The actual memory component can be any device which has a higher reliability than the system board and where the system board is separately replaceable, preferably in the field, from the memory component. One embodiment of the system specific memory could be a memory Integrated Circuit (IC) such as an Electrically Erasable Programmable Read Only Memory (EEPROM). The EEPROM could be mounted on a Printed Circuit Board (PCB) of the system that only includes inherently stable components. A preferred PCB for the EEPROM would be a disk interface PCB for a main memory unit, such as a disk drive tray of the system. If the system or main processor board needed to be replaced, this could be performed without replacing the disk drive tray. Another possibility would be that the system specific memory is on a separate board or card which plugs into either the main system processor board, or a connection strip/plane that connects the individual units or modules of the telephone system. A still further possibility for the system specific memory is a memory chip which plugs into a socket mounted so that it is repetitively removable from whatever support structure it is connected to, if that support structure needs to be replaced. The socket holds the memory chip by a biasing clamping action, preferably on the electronic leads of the memory chip. When the supporting structure needs to the replaced, the memory chip is pulled or pried from the defective board and then inserted into the replacement board. The system specific memory in all of the possibilities is preferably non-volatile.
The system specific memory can also be used to store custom settings of the telephone system, such as the names of the individual users, their extension numbers, etc.
By providing non-volatile storage in a portion that does not normally get replaced, the present invention has significantly decreased the xe2x80x9cmean time to repairxe2x80x9d (MTTF) of the system. Upon system startup, the software of the present invention reads the contents of the system specific memory and enables/configures the telephone system according to the license information and custom settings in the system specific memory.
In many cases, the types and amount of optional software that a customer orders increases over time. When a customer initially purchases a telephone system, the number of users may be low, the need for special features be nonexistent or low, and the money available to purchase a telephone system may also be low. As time progresses, the number of users may increase, the customer""s situation may change and additional features are desired, and additional money may become available to add additional features. During the installation, license information is provided for the initial configuration. As additional features and options are added, additional or replacement license information is provided for the new features or options. If the current license information stored in the system is lost, such as due to a system processor board replacement, finding the proper license information in a customer""s or vendors personal records can be very time-consuming, especially when the license information has changed due to upgrades or additional features being added. Often the time required to find the proper license information is measured in days, while the actual physical hardware replacement is measured in hours.
The separately replaceable system specific memory of the present invention with its high reliability address this problem. In the present invention, a failure of a main processor board or other similar system module would not require replacement of memory containing license information. The defective unit would be removed and a replacement unit would be installed. Upon re-starting of the system, the license information would be read by the software from the original system specific memory, even if the software and the hardware running the software were replaced. The re-started system would then be re-initialized to its original configuration eliminating the need to re-load the correct license information and other custom settings.
The xe2x80x9cmean time to repairxe2x80x9d (MTTR) is a key factor in telephone system reliability and availability metrics. The present invention provides for rapid replacement of a system component and return of the system into operation. Many companies and organizations are highly dependent on telephone communication, and work productivity significantly decreases when a telephone system is not operational. Decreasing the xe2x80x9cmean time to repairxe2x80x9d increases the desirability of a telephone system in many applications, and the present invention is therefore an improvement in programmable telephone systems.